var base_url = "/srs/";
function pushValueToCountryCombo(data){
	$('comboCountry').options.length = 1;
	for(var i=data.length-1; i>=0; i--){
	    var option = document.createElement('option');
	    option.text = data[i].countryName;
	    option.value = data[i].countryId;
	    if (option.value==countryId) {
	    	option.selected = true;
	    }
	    var optionOld = $('comboCountry').options[$('comboCountry').selectedIndex + 1];  
	    try {
	    	$('comboCountry').add(option, optionOld); // standards compliant; doesn't work in IE
	    }
	    catch(ex) {
	    	$('comboCountry').add(option, $('comboCountry').selectedIndex + 1); // IE only
	    }
	}
}

function pushValueToAreaCombo(data){
	$('comboArea').options.length = 1;
	for(var i=data.length-1; i>=0; i--){
	    var option = document.createElement('option');
	    option.text = data[i].areaName;
	    option.value = data[i].areaId;
	    if (option.value==areaId) {
	    	option.selected = true;
	    }	    
	    var optionOld = $('comboArea').options[$('comboArea').selectedIndex + 1];  
	    try {
	    	$('comboArea').add(option, optionOld); // standards compliant; doesn't work in IE
	    }
	    catch(ex) {
	    	$('comboArea').add(option, $('comboArea').selectedIndex + 1); // IE only
	    }
	}
}

function pushValueToProvinceCombo(data){
	$('comboProvince').options.length = 1;
	for(var i=data.length-1; i>=0; i--){
	    var option = document.createElement('option');
	    option.text = data[i].provinceName;
	    option.value = data[i].provinceId;
	    if (option.value==provinceId) {
	    	option.selected = true;
	    }	    
	    var optionOld = $('comboProvince').options[$('comboProvince').selectedIndex + 1];  
	    try {
	    	$('comboProvince').add(option, optionOld); // standards compliant; doesn't work in IE
	    }
	    catch(ex) {
	    	$('comboProvince').add(option, $('comboProvince').selectedIndex + 1); // IE only
	    }
	}
}

function pushValueToCellCombo(data){
	$('comboCell').options.length = 1;
	for(var i=data.length-1; i>=0; i--){
	    var option = document.createElement('option');
	    option.text = data[i].cellId;
	    option.value = data[i].cellId;
	    if (option.value==cellId) {
	    	option.selected = true;
	    }
	    var optionOld = $('comboCell').options[$('comboCell').selectedIndex + 1];  
	    try {
	    	$('comboCell').add(option, optionOld); // standards compliant; doesn't work in IE
	    }
	    catch(ex) {
	    	$('comboCell').add(option, $('comboCell').selectedIndex + 1); // IE only
	    }
	}
}

function filterCountry() {
	new Ajax.Request(base_url + 'agent/cellList.do', {
		parameters: {countryId: $('comboCountry').options[$('comboCountry').selectedIndex].value},
		method : 'post',
		onSuccess : function(transport) {
			var data = transport.responseText.evalJSON();
			// Init countries combo
			pushValueToAreaCombo(data.areas);
			filterArea();
		},
		onFailure : function() {
			alert('Something went wrong...')
		}
	});
}

function filterArea() {
	new Ajax.Request(base_url + 'agent/cellList.do', {
		parameters: {areaId: $('comboArea').options[$('comboArea').selectedIndex].value},
		method : 'post',
		onSuccess : function(transport) {
			var data = transport.responseText.evalJSON();
			// Init province combo
			pushValueToProvinceCombo(data.provinces);		
			filterProvince();
		},
		onFailure : function() {
			alert('Something went wrong...')
		}
	});	
}

function filterProvince() {
	new Ajax.Request(base_url + 'agent/cellList.do', {
		parameters: {provinceId: $('comboProvince').options[$('comboProvince').selectedIndex].value},
		method : 'post',
		onSuccess : function(transport) {
			var data = transport.responseText.evalJSON();
			// Init cell combo
			pushValueToCellCombo(data.agents);			
		},
		onFailure : function() {
			alert('Something went wrong...')
		}
	});
}

function agentUpdate(updateId, agentId) {
	TINY.box.show(base_url + 'agent/updateAgent.do?agent.agentId=' + agentId + '&updateId=' + updateId, 1, 300, 150, 1);
}

function agentUpdateQuery(updateId, agentId) {
	TINY.box.show(base_url + 'agent/updateAgentQuery.do?agent.agentId=' + agentId + '&updateId=' + updateId, 1, 300, 150, 1);
}

function deleteAgent(agentId){
	var url = base_url +'agent/deleteComplete.do?agent.agentId=' + agentId;
	var content = '<center><div style="height: 120px;vertical-align: middle;">Bạn có chắc là mình muốn xóa agent này</div>'
		+ '<div style="clear-both"><span></span></div>'
		+ '<div style="margin-bottom: 5px;">'
		+ '<button onclick="location.href=\'' + url +'\';">Đồng ý</button>&nbsp;&nbsp;'
		+ '<button onclick="TINY.box.hide()">Hủy bỏ</button>'
		+ '</div></center>'
		;
	TINY.box.show(content, 0, 300, 150, 1);
}

function deleteGroup(groupId){
	new Ajax.Request(base_url + 'group/groupIsUsed.do?group.groupId=' + groupId, {
		method : 'post',
		onSuccess : function(transport) {
			var data = transport.responseText.evalJSON();
			// Init countries combo
			if (data.groupIsUsed=='false'){
				var url = base_url +'group/deleteComplete.do?group.groupId=' + groupId;
				var content = '<center><div style="height: 120px;vertical-align: middle;">Bạn có chắc là mình muốn xóa group này</div>'
					+ '<div style="clear-both"><span></span></div>'
					+ '<div style="margin-bottom: 5px;">'
					+ '<button onclick="location.href=\'' + url +'\';">Đồng ý</button>&nbsp;&nbsp;'
					+ '<button onclick="TINY.box.hide()">Hủy bỏ</button>'
					+ '</div></center>'
					;
				TINY.box.show(content, 0, 300, 150, 1);

			} else {
				var content = '<center><div style="height: 120px;vertical-align: middle;">Bạn không thể xóa group này vì vẫn có user nào đó sử dụng nó!</div>'
					+ '<div style="clear-both"><span></span></div>'
					+ '<div style="margin-bottom: 5px;">'
					+ '<button onclick="TINY.box.hide()">Hủy bỏ</button>'
					+ '</div></center>'
					;
				TINY.box.show(content, 0, 300, 150, 1);				
			}
		},
		onFailure : function() {
			alert('Something went wrong...')
		}
	});	
}

function deleteUser(userId){
	var url = base_url +'user/deleteComplete.do?user.userId=' + userId;
	var content = '<center><div style="height: 120px;vertical-align: middle;">Bạn có chắc là mình muốn xóa user này</div>'
		+ '<div style="clear-both"><span></span></div>'
		+ '<div style="margin-bottom: 5px;">'
		+ '<button onclick="location.href=\'' + url +'\';">Đồng ý</button>&nbsp;&nbsp;'
		+ '<button onclick="TINY.box.hide()">Hủy bỏ</button>'
		+ '</div></center>'
		;
	TINY.box.show(content, 0, 300, 150, 1);
}

function deleteRole(roleId){
	new Ajax.Request(base_url + 'role/roleIsUsed.do?role.roleId=' + roleId, {
		method : 'post',
		onSuccess : function(transport) {
			var data = transport.responseText.evalJSON();
			// Init countries combo
			if (data.roleIsUsed=='false'){
				var url = base_url +'role/deleteComplete.do?role.roleId=' + roleId;
				var content = '<center><div style="height: 120px;vertical-align: middle;">Bạn có chắc là mình muốn xóa role này</div>'
					+ '<div style="clear-both"><span></span></div>'
					+ '<div style="margin-bottom: 5px;">'
					+ '<button onclick="location.href=\'' + url +'\';">Đồng ý</button>&nbsp;&nbsp;'
					+ '<button onclick="TINY.box.hide()">Hủy bỏ</button>'
					+ '</div></center>'
					;
				TINY.box.show(content, 0, 300, 150, 1);
			} else {
				var content = '<center><div style="height: 120px;vertical-align: middle;">Bạn không thể xóa role này vì vẫn có group nào đó sử dụng nó!</div>'
					+ '<div style="clear-both"><span></span></div>'
					+ '<div style="margin-bottom: 5px;">'
					+ '<button onclick="TINY.box.hide()">Hủy bỏ</button>'
					+ '</div></center>'
					;
				TINY.box.show(content, 0, 300, 150, 1);				
			}
		},
		onFailure : function() {
			alert('Something went wrong...')
		}
	});
}

function deleteScope(scopeId){
	new Ajax.Request(base_url + 'scope/scopeIsUsed.do?scope.scopeId=' + scopeId, {
		method : 'post',
		onSuccess : function(transport) {
			var data = transport.responseText.evalJSON();
			// Init countries combo
			if (data.scopeIsUsed=='false'){
				var url = base_url +'scope/deleteComplete.do?scope.scopeId=' + scopeId;
				var content = '<center><div style="height: 120px;vertical-align: middle;">Bạn có chắc là mình muốn xóa scope này</div>'
					+ '<div style="clear-both"><span></span></div>'
					+ '<div style="margin-bottom: 5px;">'
					+ '<button onclick="location.href=\'' + url +'\';">Đồng ý</button>&nbsp;&nbsp;'
					+ '<button onclick="TINY.box.hide()">Hủy bỏ</button>'
					+ '</div></center>'
					;
				TINY.box.show(content, 0, 300, 150, 1);

			} else {
				var content = '<center><div style="height: 120px;vertical-align: middle;">Bạn không thể xóa scope này vì vẫn có group nào đó sử dụng nó!</div>'
					+ '<div style="clear-both"><span></span></div>'
					+ '<div style="margin-bottom: 5px;">'
					+ '<button onclick="TINY.box.hide()">Hủy bỏ</button>'
					+ '</div></center>'
					;
				TINY.box.show(content, 0, 300, 150, 1);				
			}
		},
		onFailure : function() {
			alert('Something went wrong...')
		}
	});	
}

function debugObject(object) {
	var result = "";
	for (var property in object) {
		result += property + ': ' + object[property] + '\r\n';
	}
	alert(result);
}

function checkDateForDetailForm(fromDate, toDate){
	var re_date = /^\s*(\d{1,4})-(\d{1,2})-(\d{1,2})\s*$/;
	if (!re_date.exec(fromDate))
		alert ("Invalid date: '" + fromDate + "'.\nAccepted format is yyyy-mm-dd.")
	var fDate = new Date (Number(RegExp.$1), Number(RegExp.$2) - 1, Number(RegExp.$3));
	
	if (!re_date.exec(toDate))
		alert ("Invalid date: '" + toDate + "'.\nAccepted format is yyyy-mm-dd.")
	var tDate = new Date (Number(RegExp.$1), Number(RegExp.$2) - 1, Number(RegExp.$3));

	
	if (tDate.getTime() - fDate.getTime() <= 0){
		alert('Ngày bắt đầu phải trước ngày kết thúc! Hãy chọn lại!');
		return false;
	}

	if ((tDate.getTime() - fDate.getTime())> 15*1000*60*60*24){
		alert('Thời gian giữa ngày bắt đầu và ngày kết thúc phải nhỏ hơn 15 ngày! Hãy chọn lại!');
		return false;
	}
	
	$('agentDetailForm').submit();
}


function checkDateForIndexForm(fromDate, toDate){
	var re_date = /^\s*(\d{1,4})-(\d{1,2})-(\d{1,2})\s*$/;
	if (!re_date.exec(fromDate))
		alert ("Invalid date: '" + fromDate + "'.\nAccepted format is yyyy-mm-dd.")
	var fDate = new Date (Number(RegExp.$1), Number(RegExp.$2) - 1, Number(RegExp.$3));
	
	if (!re_date.exec(toDate))
		alert ("Invalid date: '" + toDate + "'.\nAccepted format is yyyy-mm-dd.")
	var tDate = new Date (Number(RegExp.$1), Number(RegExp.$2) - 1, Number(RegExp.$3));

	
	if (tDate.getTime() - fDate.getTime() <= 0){
		alert('Ngày bắt đầu phải trước ngày kết thúc! Hãy chọn lại!');
		return false;
	}

	if ((tDate.getTime() - fDate.getTime())> 15*1000*60*60*24){
		alert('Thời gian giữa ngày bắt đầu và ngày kết thúc phải nhỏ hơn 15 ngày! Hãy chọn lại!');
		return false;
	}
	
	$('agentIndexForm').submit();
}

function check(id, name, min, max){
	if ($(id).className.indexOf('isValidInteger')!=-1){
		if (!$V(id) && $(id).value!='') {
			alert('Trường ' + name + ' phải là số!');
			setTimeout(function(){$(id).focus();}, 10);
			return false;
		}
		if (min!=null){
			if ($(id).value.length<min) {
				alert('Trường ' + name + ' phải nhiều hơn ' + min +' chữ số!');
				setTimeout(function(){$(id).focus();}, 10);
				return false;
			}				
		}
		if (max!=null){
			if ($(id).value.length>=max) {
				alert('Trường ' + name + ' phải ít hơn ' + max +' chữ số!');
				setTimeout(function(){$(id).focus();}, 10);
				return false;
			}	
		}			
	}
	if ($(id).className.indexOf('require')!=-1){
		if ($(id).value.trim()=='') {
			alert('Trường ' + name + ' là bắt buộc!');
			setTimeout(function(){$(id).focus();}, 10);
			return false;
		}		
		if (min!=null){
			if ($(id).value.length<min) {
				alert('Trường ' + name + ' phải nhiều hơn ' + min +' ký tự!');
				setTimeout(function(){$(id).focus();}, 10);
				return false;
			}				
		}
		if (max!=null){
			if ($(id).value.length>=max) {
				alert('Trường ' + name + ' phải ít hơn ' + max +' ký tự!');
				setTimeout(function(){$(id).focus();}, 10);
				return false;
			}	
		}			
	}
	if (min!=null){
		if ($(id).value.length<min) {
			alert('Trường ' + name + ' phải nhiều hơn ' + min +' ký tự!');
			setTimeout(function(){$(id).focus();}, 10);
			return false;
		}				
	}
	if (max!=null){
		if ($(id).value.length>=max) {
			alert('Trường ' + name + ' phải ít hơn ' + max +' ký tự!');
			setTimeout(function(){$(id).focus();}, 10);
			return false;
		}	
	}		
	return true;
}

function disableEnterKey(e)
{
     var key;

     if(window.event)
          key = window.event.keyCode;     //IE
     else
          key = e.which;     //firefox

     if(key == 13)
          return false;
     else
          return true;
}


String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}
